package com.bosssoft.hr.train.j2se.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
/**
 * @Classname: BaseEntity
 * @Description:定义所有的entity的父类，减少代码容易，该类主要针对表的公共字段
 * 该类为抽象类不允许被继承所以定义为abstract class
 * lombok注解@Data 包含了 @getter @setter  @ToString @HashAndEqual 等
 * @author: zoubinyan
 * @Date: 2023/2/22
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseEntity {
        /**
         * 主键
         */
        protected Long id;
        /**
         * 备注
         */
        private String remark;
        /**
         * 租户id
         */
        private Long tenantId;
        /**
         * 机构id 一个租户多个机构
         */
        private Long orgId;
        /**
         * 公司id 一个机构多个公司
         */
        private Long companyId;
        /**
         * 创建人id 这个id都是指出 primary key的值
         */
        private Long createdBy;
        /**
         * 姓名 避免通过id去关联查询
         */
        private String creator;
        /**
         * 记录插入的记录时间 用于追踪记录插入时间
         */
        private Date createdTime;
        /**
         * 修改记录的时候被更新
         */
        private Long updatedBy;
        /**
         * 记录更新的记录时间 用于查找更新时间以及 确定是否排在前面的是否是最新更改的
         */
        private Date updatedTime;
        /**
         * 修改人
         */
        private String modifier;
        /**
         * 记录状态 正常为 1 注销为 0 锁定为 2
         */
        private byte status;
        /**
         *  版本号
         */
        private Long version;

}
